package cn.iocoder.yudao.module.brokerage.record.pojo.po;

import cn.iocoder.yudao.framework.business.basic.pojo.po.MemberScopeEntity;
import cn.iocoder.yudao.module.api.brokerage.record.enums.BrokerageBonusLevelEnum;
import cn.iocoder.yudao.module.api.brokerage.record.enums.BrokerageRecordBizTypeEnum;
import cn.iocoder.yudao.module.api.brokerage.record.enums.BrokerageRecordStatusEnum;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 *  推广用户分佣记录 DO
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2025/01/17
 */
@Data
@TableName(value = "brokerage_record")
//@KeySequence("brokerage_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
public class BrokerageRecordDO extends MemberScopeEntity {

    /**
     * 业务类型，如buy_product
     *
     * @see BrokerageRecordBizTypeEnum
     */
    private String bizType;

    /**
     * 业务编号，如交易单号@订单项编号。TODO 后续拆分为两个字段，即 trade_no + order_item_id
     */
    private String bizId;

    /**
     * 分佣基准金额，单位为分
     */
    private Integer basePrice;

    /**
     * 分佣级别：1-一级、2-二级
     *
     * @see BrokerageBonusLevelEnum
     */
    private Integer bonusLevel;

    /**
     * 分佣比例，0-100之间的数字
     */
    private Double bonusPercent;

    /**
     * 分佣金额，单位为分
     */
    private Integer bonusMoney;

    /**
     * 来源用户编号
     */
    private Long sourceUserId;

    /**
     * 状态：0-待入账、1-已结算、2-已失效、3-已取消
     *
     * @see BrokerageRecordStatusEnum
     */
    private Integer status;

    /**
     * 备注
     */
    private String note;

    /**
     * 解冻时间
     */
    private LocalDateTime unfreezeTime;

    /**
     * 取消时间
     */
    private LocalDateTime cancelTime;

}
